package com.weetop.cfw.home_page.activity

import android.os.Bundle
import android.view.View
import com.baidu.location.*
import com.blankj.utilcode.util.LogUtils
import com.weetop.cfw.R
import com.weetop.cfw.base.ui.activity.CommonBaseActivity
import kotlinx.android.synthetic.main.activity_detail_address.*


/**
 * 详细地址界面
 */
class DetailAddressActivity : CommonBaseActivity(),View.OnClickListener {

    private lateinit var locationListener: BDAbstractLocationListener//定位监听器

    private lateinit var locationClient: LocationClient//百度定位工具类


    override fun getLayoutId() = R.layout.activity_detail_address

    override fun initView(savedInstanceState: Bundle?) {
       setViewsOnClickListener(this,imageRelocation)
    }

    override fun initData(savedInstanceState: Bundle?) {
         locateCurrentLocation()
    }

    /**
     * 定位当前位置
     */
    private fun locateCurrentLocation(){
        locationClient = LocationClient(applicationContext)
        locationListener = object:BDAbstractLocationListener(){
            override fun onReceiveLocation(p0: BDLocation?) {
                if(p0 != null){
                    textCurrentCity.text = p0.city
                    textCurrentAddress.text = "${p0.district}${p0.town}${p0.street}${p0.streetNumber}"
                    LogUtils.d("district",p0.district)
                    LogUtils.d("street",p0.street)
                    LogUtils.d("town",p0.town)
                    LogUtils.d("streetNumber",p0.streetNumber)
//                    val poi: Poi = p0.poiList[0]
//                    val poiName = poi.name //获取POI名称
//                    val poiTags: String = poi.tags //获取POI类型
//                    val poiAddr = poi.addr //获取POI地址 //获取周边POI信息


//                    val poiRegion: PoiRegion = p0.poiRegion
//                    val poiDerectionDesc = poiRegion.derectionDesc //获取PoiRegion位置关系
//                    val poiRegionName = poiRegion.name //获取PoiRegion名称
//                    val poiTags = poiRegion.tags //获取PoiRegion类型
//                    LogUtils.e("poiAddr",poiAddr)
//                    LogUtils.e("poiName",poiName)
//                    LogUtils.e("poiTags",poiTags)
                }
            }
        }
        locationClient.registerLocationListener(locationListener)
        val option = LocationClientOption()
        //可选，是否需要地址信息，默认为不需要，即参数为false
        //如果开发者需要获得当前点的地址信息，此处必须为true
        option.setIsNeedAddress(true)
        //可选，设置是否使用gps，默认false
        //使用高精度和仅用设备两种定位模式的，参数必须设置为true
        option.isOpenGps = true
        //可选，定位SDK内部是一个service，并放到了独立进程。
        //设置是否在stop的时候杀死这个进程，默认（建议）不杀死，即setIgnoreKillProcess(true)
        option.setIgnoreKillProcess(true)
        //可选，设置是否收集Crash信息，默认收集，即参数为false
        option.SetIgnoreCacheException(false)
        //mLocationClient为第二步初始化过的LocationClient对象
        //需将配置好的LocationClientOption对象，通过setLocOption方法传递给LocationClient对象使用
        //更多LocationClientOption的配置，请参照类参考中LocationClientOption类的详细说明
        locationClient.locOption = option

        locationClient.start()
    }

    override fun onDestroy() {
        super.onDestroy()
        locationClient.unRegisterLocationListener(locationListener)
    }

    override fun onClick(v: View?) {
        when(v?.id){
            R.id.imageRelocation,R.id.textRelocation -> locationClient.start()
        }
    }
}
